|
PICK SCREEN
This command will calculate a relative 3D coordinate from a 2D screen coordinate.
PICK SCREEN Screen X, Screen Y, Distance
Screen X
Integer
The x vector
Screen Y
Integer
The y vector
Distance
Float
The distance value you got from get pick distance()
This command will calculate a relative 3D coordinate from a 2D screen coordinate
The additional Distance parameter indicates how far into the screen the 3D coordinate is to be calculated. The resulting 3D coordinate is not a world position, but a relative 3D vector from the current camera position. The world coordinate can be obtained by adding the camera position to the resulting vector. The resulting vector is generated internally and can be retrieved using the GET PICK VECTOR commands.
sync on : sync rate 60
make object plain 1,300,300
position object 1,0,-50,0
xrotate object 1,270
make object cube 2,100
set shadow shading on 2
set point light 0,-100,500,-100
position camera -200,0,-200
point camera 0,0,0
x#=0:y#=0:z#=0
do
set cursor 0,0
if mouseclick()=0 then pickmode=0
if mouseclick()>0
if pick object(mousex(),mousey(),2,2)>0
if pickmode=0
d#=get pick distance()
x#=get pick vector x():y#=get pick vector y():z#=get pick vector z()
print "object x ",x#," object y ",y#," object z ",z#," distance ",d#
inc pickmode
endif
endif
if pickmode=1
pick screen mousex(),mousey(),d#
dx#=x#-get pick vector x():dy#=y#-get pick vector y():dz#=z#-get pick vector z()
print dx#," ",dy#," ",dz#
endif
position object 2,dx#,dy#,dz#
endif
print x#," ",y#," ",z#
print "CLICK AND HOLD OBJECT TO DRAG"
sync
loop
end
BASIC3D Commands Menu
Index
|